1. Field of the Invention
The present invention relates to systems in which transactions are performed by displaying a barcode on a device that is not part of a point of sale system. In most cases these devices will be portable or mobile in nature such as a cellular telephone. The point of sale system will read the displayed barcode from the device.
2. Description of Related Art
Barcodes Generally: FIG. 1
In a barcode, information is encoded as a set of light and dark elements which are arranged in a predetermined manner. At 102 in FIG. 1 is shown a one-dimensional barcode in which the elements are light and dark stripes. FIG. 1 further displays a number of images that are helpful to explain how barcodes are created. Definitions of and methodologies for how 1-dimensional and 2-dimensional barcodes must be rendered are well known and can be found in a number of locations. An example detailing how 1-dimensional UPC barcodes are created is described at the Web page referenced by http://en.wikipedia.org/wiki/UPC_code. UPC barcode (102) uses light and dark stripes to encode 12 decimal digits as SLLLLLLMRRRRRRE. The light and dark stripes are made up of light and/or dark elements of equal size. If an element in a stripe is light, it is described in the following as having the value 0; if it is dark, it is described as having the value 1.
Beginning with portions S (start 104) and E (end 112) of the UPC code, S and E are represented by elements having the pattern 101, i.e., a dark element followed by a light element followed by a dark element. M (middle 108) is represented by elements having the pattern 01010 (called guard bars), and the twelve digits are broken into two sets of 6 digits represented by 6 L (left 106) digits and 6 R (right 110) digits, where each of the 6 L digits and 6 R digits are represented by seven elements. For example, the digit “4” is represented by elements having the pattern 1011100.
The limitations of barcode readers impose two critical dimensions on 1-dimensional barcodes: a minimum height for the barcode and a minimum width for the barcode's elements.                The minimum height is the height that the barcode must have in order for a barcode reader to be able to accurately read it. The minimum height is dependent upon the capabilities of the barcode reader being utilized and is often described in best practices for using a particular barcode type. In some cases, such as in the case of barcodes used by postal systems, the barcode standard specifies a very specific minimum height.        The minimum width for a barcode's elements is the minimum width that an element of the barcode must have to be accurately read by a barcode reader. For reasons that will be explained in the following, when a barcode is displayed in a pixel display device, the minimum element width must be an integer number of pixels.        
Problems of Displaying Barcodes on Electronic Displays
Electronic displays typically contain display elements called pixels. Any images which are rendered on such electronic displays must be rendered as a set of whole pixels. For example, it is not possible to render an image which is 2.5 pixels wide (or high). The display must render the image as 2 pixels or 3 pixels wide (or high)
As is apparent from the foregoing, the elements of barcodes (both 1 dimensional and 2 dimensional) must be rendered using an integer number of pixels. The integer number of pixels must give the element a display width which is great enough for the barcode reader to read the element.
FIG. 1 also displays a number of images that are helpful to explain the effects of expansion of a barcode that is to be displayed on a pixel display.
Effect 1) The effect of antialiasing. Aliasing results whenever an image that cannot be expressed as an integer number of pixels is mapped onto a pixel display. Because of aliasing, lines and edges appear jagged to the eye instead of smooth. Anti-aliasing minimizes the effects of aliasing in images displayed in pixel displays. This effect is created by blending the jagged edge in to the background using a combination of the background color and the foreground color. In the case of a black barcode element next to a white bar code element, anti-aliasing will produce a gray area at the intersection of the black and white elements as shown in 116. Element 114 shows a barcode that has been magnified 12× and element 116 shows the same barcode that has been magnified 12.5× with antialiasing. Note that the edges of the bars are not smooth in 116. The fuzziness resulting from antialiasing makes it difficult or impossible for a barcode reader to successfully read the barcode.
Effect 2) The effect of expansions on element sizes. Element 118 shows a portion of a barcode consisting of 11 elements. The elements are 10110011101, where as before 1 represents a dark element and 0 a light element. When an image is expanded, the display rounds areas of the image with different colors to the nearest size in entire pixels. Thus, if the barcode portion shown at 118 has elements that are 1 pixel wide and is expanded 150%, a dark or light area that is one element wide (1 or 0) will become 2 pixels wide, while a dark or light area that is 2 elements wide (11 or 00) will become 3 pixels wide and a dark or light area that is 3 elements wide (111 or 000) will become 5 pixels wide. As a consequence, the elements of the displayed barcode now have different widths (2 pixels (2/1) when the area is 1 or 0, 1.5 pixels (3/2) when the area is 11 or 00, and 1⅔ pixels (5/3) when the area is 111 or 000). Barcode readers universally presume that all of the elements in the barcode have the same width, and consequently, the expansion of the barcode by 150% has rendered the barcode unreadable.
Effect 3) A third problem is that the elements of the barcode must have the minimum width that is required for the barcode reader to read the element. Typical readers for sale today require a minimum barcode element size of at least 8 mils (0.008″). The width in pixels of the barcode must thus be an integer number of the pixels used in the display device which results in an element that is at least as wide as the minimum width required for the reader. If a barcode is displayed with elements whose width in pixels is less than the minimum width, many barcode readers will not be able to read the barcode. On reflective displays such as LCD displays, the minimum width problem is further exacerbated by glass or plastic coatings which sit above the display device and which tend to distort both the light received from the barcode reader and the light produced by the display and thus to distort the image of the barcode.
As an example of the above, if a display is 1.0″ wide×1.0″ high and is 175 pixels in both width and height, then each pixel is 5.7 mils wide. This is a smaller element size than can be read by most barcode readers.
The net result then of Effects 1, 2, and 3 is that for a high resolution display such as the one described above (with many pixels per inch), rendering the barcode with elements whose display width is the width of a single pixel in the display will result in a barcode that has elements which are smaller than can be accurately read by a barcode reader (Effect 3). Simply increasing the size of the elements by an arbitrary amount will render the barcode unreadable because of the results described in Effects 1 and 2 above. Further, the amount by which the width in pixels of the barcode may be increased is limited by the requirement that the entire barcode must fit in the display.
Finally, because of Effects 1, 2, and 3, the code must be specifically generated for the displaying device so that the software which controls the display of graphics does not produce a display of the barcode which is subject to Effects 1 or 2 or no longer fits on the display device. In the case of two-dimensional barcodes, of course, both the height and width in pixels of the barcode's elements must be such that the display heights and widths of the elements are large enough so that the elements are read by the barcode reader.
Prior art has suggested i) the concept of customizing the appearance of barcodes based upon the size and color depth of a given display (U.S. published patent application 2003/0230630, Whipple, et al., Using mobile electronic devices to transfer data through dynamically generated scannable barcodes, published Dec. 18, 2003) and ii) mechanisms for creating a database of displays and their attributes in order to customize the appearance of a barcode for a particular display. (WO2004027662, MOBIQA LTD (GB); FORBES RONALD (GB), OPTIMISED MESSAGES CONTAINING BARCODE INFORMATION FOR MOBILE RECEIVING DEVICE, Apr. 1, 2004). However, these solutions do not address the issue of ensuring maximum readability of the displayed barcode.